What Is Sphinx?
检索非结构化数据, 例如包含某个词的文章等
替代原有的顺序查找, 正则匹配.
优点
高速创建/检索索引, 海量数据(100GB+), 优秀相关度算法, 分布式搜索, 文档片段生成(摘要,高亮)
扩展 MySQL, 支持 Bool,短语,词语相似度等多种检索模式
最大支持 32 个全文检索字段
缺点
被检索表必须有整形主键(一般为 auto_increment), 不负责存储数据, 配置不灵活
检索原理
创建索引
切分词
中文分词 coreseek, MMSeg
语言处理(转换语言->英文时态等得到原型)
开始索引
排序去重, 构建文档频率, 词频.
搜索索引
得到查询请求, 切分词, 语言处理, 在索引中搜索得到文档 IDs, 根据词频排序.